
var spider = require('./node.spider');
var cheerio = require('cheerio');
var url_node = require('url');
var Iconv = require('iconv-lite');
var pinyin = require('node-pinyin');
var insertDB = require('./insert.db');
var utils = require('../../dao/utils');

function sort(title) {
    title = title.replace(/(^s*)|(s*$)/g, "");
    let str = title.substring(0, 1).toUpperCase();

    // 英文字符，数字
    if (str >= 'A' && str <= 'Z') {
        return str;
    } else if (str >= 0 && str <= 9) {
        return '0-9';
    } else {

        var p = pinyin(str, { "style": "normal" })[0][0].toUpperCase();
        // console.log(p);
        p = p.substring(0, 1).toUpperCase();


        // console.log((p >= 'A') && (p <= 'Z'));

        if ((p >= 'A') && (p <= 'Z')) {
            return p;
        } else {
            return '其他';
        }


    }


}

// setting
var setting = {
    start: {
        url: 'http://manhua.dmzj.com/tags/riben/*PageReplace*.shtml',
        pageItem: 1,
        curPage: 1,
        totalPage: 308,
        timeout: 5000
    },
    parseHandel: function (body, url, _default) {
        var res;
        try {
            res = body.toString('utf-8');
        } catch (e) {
            spider.spider(url, _default);
            return;
        }


        var $ = cheerio.load(res);

        dmzjHtml($, url, _default);

        // console.log(data);

        if (_default.start.curPage == 1) {
            // /tags/riben/307.shtml
            var href = $('.pages a').eq(-1).attr('href').replace('.shtml', '');
            var n = href.split('/');
            _default.start.totalPage = n[n.length - 1];
        }

        _default.pageNext(_default);

    },
    parseDetailHandel: function (body, url, _default) {
        var res;
        try {
            res = body.toString('utf-8');
        } catch (e) {
            spider.spiderDetail(url, _default);
            return;
        }


        var $ = cheerio.load(res);

        var data = dmzjDetailHtml($, url, _default);

        if (data == false) {
            return;
        }

        insertDB(data, _default);
        // console.log(data);
    }


};

spider.init(setting);



// dmzj网站爬取
function dmzjHtml($, url, _default) {

    var urlObj = url_node.parse(url);
    var protocol = urlObj.protocol;
    var hostname = urlObj.hostname;

    var host = protocol + "//" + hostname;

    var liArry = $('.tcaricature_new .tcaricature_block ul');

    if (liArry.length == 0) {
        console.log('no lis');
        return false;
    }

    for (var i = 0; i < liArry.length; i++) {
        var item = liArry.eq(i);

        if (item.hasClass('ad_360_item')) {
            continue;
        }

        var url = host + item.find('li').eq(0).find('a').attr('href');
        var title = item.find('li').eq(0).find('a').attr('title').replace(/(^s*)|(s*$)/g, "");
        //detail  
        spider.spiderDetail(url, _default, 5000, title);
    }

}

function dmzjDetailHtml($, url, _default) {
    var urlObj = url_node.parse(url);
    var protocol = urlObj.protocol;
    var hostname = urlObj.hostname;

    var host = protocol + "//" + hostname;

    var item = $('.anim_intro .week_mend .anim-main_list table tr');

    if (item.length == 0) {
        return false;
    }

    var chapter = [];


    var chaptersLis = $('.cartoon_online_border li');

    for (var i = 0; i < chaptersLis.length; i++) {
        var _cur = chaptersLis.eq(i);

        chapter.push({
            href: host + _cur.find('a').attr('href').replace(/(^s*)|(s*$)/g, ""),
            chapter: _cur.find('a').attr('title').replace(/(^s*)|(s*$)/g, "")
        });
    }


    // var _sChapter = chapter.join(',');
    var _title = $('.anim_title_text h1').text().replace(/(^s*)|(s*$)/g, "");


    var data = {
        title: _title,
        href: url,
        img: $('.anim_intro_ptext img').attr('src'),
        auth: item.eq(2).find('a').text().replace(/(^s*)|(s*$)/g, ""),
        auth_href: host + item.eq(2).find('a').attr('href').replace(/(^s*)|(s*$)/g, "").replace('../','/'),
        news: item.eq(8).find('td a').text().replace(/(^s*)|(s*$)/g, ""),
        news_href: host + item.eq(8).find('td a').attr('href'),
        isFinish: item.eq(4).find('td a').text().replace(/(^s*)|(s*$)/g, "") == '已完结' ? true : false,
        updateTime: item.eq(8).find('td .update2').text().replace(/(^s*)|(s*$)/g, ""),
        type:  item.eq(6).find('td').text().replace(/(^s*)|(s*$)/g, ""),
        letter: sort(_title),
        info: $('.line_height_content').length>1?$('.line_height_content').eq(1).text().replace(/(^s*)|(s*$)/g, "").replace('欢迎在动漫之家观看漫画www.dmzj.com',''):$('.line_height_content').eq(0).text().replace(/(^s*)|(s*$)/g, "").replace('欢迎在动漫之家观看漫画www.dmzj.com',''),
        domain: hostname,
        isUpdate: true,
        "chapters": chapter,           
        
    };


    data.updateTime = new Date(data.updateTime);
    return data;
    // console.log(chapter);

}

